14/03/06 פרק 2: מערכות סינכרוניות 2.1. מה הן מערכות סינכרוניות לוגיקות צירופיות הם נטולות זיכרון. דהינו, הפלט שלהם נקבע ע"י הקלט הנוכחי. יכולת החישוב שלהם לכן מאד מוגבלת. מערכת ספרתית בעלת זיכרון נקראת בשם המוזר מערכת סדרתית SYSTEM) (SEQUENTIAL. בקורס זה אנו (כמו עיקר התעשייה) נעסוק רק בסוג אחד של מערכות סדרתיות מערכות סינכרוניות SYSTEMS) (SYNCHRONOUS המתוארות להלן. במערכת סינכרונית יש הפרדה חדה של המערכת לשני חלקים עם חלוקה ברורה של העבודה ביניהם. תפקידו היחיד של החלק הראשון הוא לחשב פונקציות בוליאניות והוא מורכב מלוגיקות צירופיות. תפקידו היחיד של החלק השני הוא לזכור אינפורמציה והוא מורכב מרכיבי זיכרון סינכרוניים בסיסיים. רכיבים אלו הם בסיסים במובן שכל אחד מהם זוכר רק ביט אחד. הם נקראים 'סינכרוניים' כיון שהם מופעלים (כפי שיתואר להלן) ע"י אותות תזמון הנקראים שעונים ובאים מחוץ למערכת. השעונים מגיעים רק לרכיבי הזיכרון ולא ללוגיקות הצירופיות. כל אות שעון הוא אות מחזורי כאשר המרחק בין שתי עליות שכנות קבוע ושווה למרחק בין שתי ירידות שכנות. מרחק זה נקרא המחזור, או זמן המחזור, PERIOD) או (CYCLE TIME של השעון. (לא לכל השעונים אותו מחזור.) כמו כן משתמשים בעברית באותה מילה, מחזור CYCLE),(CLOCK לציין קטע זמן שאורכו כמשך המחזור ומתחיל בנקודה כלשהי. A CYCLE A CYCLE אותות השעון הם אותות נקיים (דהינו, נטולי GLITCHים) ומעברי השעון הם יחסית מהירים. לשם הפשטות מקובל להניח, גם ברמה האנלוגית, שמעברי השעון הם מידיים. סווג רכיבי הזיכרון הסינכרוניים רכיבי הזיכרון הסינכרוניים מסווגים לשנים, סוג LATCH וסוג,FLIP-FLOP לפי הקריטריון הבא: ב- LATCH יש קטע זמן בו הרכיב שקוף. דהינו, בקטע זה מעברים בקלט גורמים למעברים בפלט. ב- FF אין קטע זמן כזה. הרכיב אף פעם אינו שקוף. נראה דוגמאות לרכיבי זיכרון ספציפיים משני הסוגים. דוגמא.1 D-LATCH בתרשים מתוארים קטעי זמן המוגדרים יחסית לשעון וקשורים להתנהגות הרכיב. A T C=1 T C=0 B A CYCLE D Q אופן ההתנהגות של הרכיב הוא כדלקמן: C 1. בקטע - A ה LATCH שקוף: Q=D (כמובן לאחר השהיה מסוימת). 2. בקטע - B ה LATCH חסום: Q יציב על הערך הסופי של D בקטע A. 3. הקטע C נקרא הקטע הקריטי. מיקומו המדויק ואורכו ניתנים ע"י היצרן. D חייב להיות יציב בקטע זה, ואחרת (2) אינו מובטח. 2-1 דר' עמי ליטמן, הפקולטה למדעי המחשב, הטכניון.
דוגמא.2 EDGE-TRIGGERED-FLIP-FLOP (ETFF) D Q C A הקטעים C ו A מוגדרים יחסית לקצה העולה של השעון. אורכם ומיקומם המדויק ניתנים ע"י היצרן. אופן התנהגות ה FF הזה הוא כדלקמן: 1. C הוא הקטע הקריטי שבו D חייב להיות יציב. בקטע זה ה FF דוגם את הקלט (אבל לא משנה את הפלט). 2. הפלט משתנה רק בקטע A, לערך של D כפי שנדגם ב- C. הרוחב של A גדול מזמן המעבר של Q ומשקף את אי-הודאות הקיימת לגבי תזמון המעבר ב תמיד: A C= ו A מופיע אחרי C ואחרי העליה של השעון. לא תמיד: C לאו דווקא מכיל את עליית השעון. הוא יכול להופיע לפני או אחרי העלייה..Q ההשהיה של ה,FF שתסומן (FF) T, PD היא משך הזמן מהקצה השמאלי של C לקצה הימני של A. הסיבה להגדרה זו היא כדלקמן: בשער ובלוגיקה צירופית, ההשהיה מתארת כמה זמן נדרש לאינפורמציה "לעבור" את הרכיב (או תת המערכת). במקרה של,FF זמן מעבר זה תלוי כמובן בהתנהגות השעון. בהגדרת ההשהיה של הFF אנו מניחים שהשעון התנהג באופן בו זמן זה יהיה מינימלי. היצרן בדרך כלל מגדיר את אורכו ומיקומו של הקטע C יחסית לעליית השעון בעזרת המספרים T SETUP ו T HOLD כפי שמתואר בתרשים הבא. T SETUP הוא משך הזמן מתחילת C לעליית השעון ו T HOLD הוא משך הזמן מעליית השעון לסוף C. כפי שיתברר בהמשך, מספרים אלו הם בעלי חשיבות משניית והמספר העיקרי הוא ה (FF) T. PD C T PD (FF) T setup T HOLD ה ETFF מופעל רק ע"י קצה אחד (עליה) של השעון. הקצה השני (ירידה) כלל לא משפיע על הרכיב. הסוג הבא של FF מופעל ע"י שני הקצוות. (PTFF) דוגמא.3 PULSE-TRIGGERED-FLIP-FLOP D Q C A T PD (FF) (רכיב זה נקרא גם.(DATA-LOCKOUT-FLIP-FLOP ההבדל היחיד בין FF זה לETFF הוא שכאן הקטע A מוגדר יחסית לקצה היורד של השעון ונמצא תמיד אחרי הירידה. הערה: כל רכיבי הזיכרון שתוארו עד עתה נקראים חיוביים. רכיבי זיכרון שליליים מתנהגים כמו חיוביים פרט לכך שהם מחליפים את המשמעות של =0 ו =1 (ואת עלית השעון בירידת השעון). בכל רכיבי הזיכרון שתיארנו ישנו קטע קריטי בו הקלט חייב להיות יציב. אנו נראה בהמשך שדרישה זו אינה מקרית. יתברר שבכל רכיב זיכרון סינכרוני, לא חשוב איך הוא בנוי, אם אין אילוצי יציבות על הקלט אזי יש אות קלט נקי שיגרום לרכיב לזכור ערך לא-לוגי. 2-2
חשיבות ההבחנה בין LATCH ל- FF נראה בדוגמא הבאה של SHIFT REGISTER את חשיבות ההבחנה בין LATCH לFF. מערכת זו זוכרת ארבעה ביטים ואנו מעונינים שתבצע הזזה של ביט אחד ימינה בכל מחזור. נבחין בשני מקרים בהתאם לסוג רכיבי הזיכרון. מקרה 1 רכיבי זיכרון מסוג LATCH במקרה זה התנהגות המערכת תלויה מאוד ברוחב הפולס 1=C T. מצד אחד הפולס צריך להיות מספיק רחב כדי שהאינפורמציה תספיק לעבור LATCH אחד במשך הפולס. מצד שני, הפולס צריך להיות מספיק צר כך שהאינפורמציה לא תעבור שני LATCHES (או אחד וחצי). כיוון שהרכיבים לא מדויקים (בעלי השהיות שונות), אי אפשר להבטיח זאת. פתרון אפשרי (ולא מקובל) לבעיה זו הוא כדלקמן. משתמשים בפולסים קצרים ככל האפשר ומוסיפים השהייה זיהומית על הקשתות. דהינו על כל קשת שמים רכיב המשהה את האות מבלי לשנותו. רכיב כזה נבנה בדרך כלל כמסלול בעל מספר זוגי של מהפכים. שיטה זו היא כמובן בניגוד למשטר הבורות. השתמשו בה רק בעבר הרחוק ובמקרים נדירים. מקרה 2 רכיבי זיכרון מסוג FF במקרה זה הבעיה המתוארת לעיל לא קימת. כל הFFים דוגמים את כניסותיהם באותו קטע C, ובקטע זה כל האותות יציבים כיון שהFFים משנים את הפלט בקטע A הזר ל C. עקב היתרון הגדול לעיל של FF על,LATCH אנו נשתמש בהמשך רק בFF. נציין אבל שLATCHES מהירים יותר וזולים יותר מ FF ולכן רווחים במערכות VLSI מהירות. FF מותנה וריאציה של שני סוגי ה FF שהצגנו היא FF מותנה. לרכיב זה כניסת בקרה נוספת הנקראת LOAD והוא משנה את מצבו רק כאשר 1 = LOAD (וכמובן, רק בעקבות הקצה המתאים של השעון). האות LOAD אינו אות שעון. הוא נוצר ע"י המערכת וחייב להיות תקף באותו קטע קריטי כמו D. LOAD D Q רכיב הזיכרון העיקרי שנשתמש בו בקורס הוא ה.ETFF לכן מעתה, FF משמעותו ETFF חיובי שיכול להיות מותנה או לא מותנה. רגיסטר רגיסטר הוא אוסף של FFים מאותו סוג המופעלים כולם ע"י אותם אותות בקרה (אותו שעון ואותו אות LOAD אם קיים) שאנו בוחרים להתייחס אליהם כיחידה אחת. נדגיש שהקיבוץ של מספר FFים לרגיסטר נעשה רק כדי להקל על התכנון וההבנה של המערכת. אנו נשרטט רגיסטרים באופן הבא: רגיסטר מותנה רגיסטר לא מותנה LOAD 32 קו עבה בשרטוט זה (ובשרטוטים הבאים) מציין קו-מרובה שהוא אוסף של קוים רגילים. הקו המלוכסן והמספר שלידו מצינים את הריבוי או הרוחב של הקו-המרובה. זהו כמובן גם רוחב הרגיסטר (מספר הFFים בתוכו). לעיתים לא נקפיד בשרטוטים הלוגים לציין את רוחב הקווים המרובים. אסור להסיק משרטוט זה שFFים המהווים רגיסטר הם סמוכים זה לזה במרחב. כזכור, לתרשימים לוגים אין משמעות גיאומטרית. 2-3
להלן דוגמה פשוטה למערכת סינכרונית. L היא לוגיקה צירופית ו R 1 ו R 2 הם רגיסטרים. לא קשה לראות שמערכת זו מתפקדת עם כל שעון שמחזורו לפחות (FF). T PD (L)+T PD נחזור לעניין זה בעתיד. R R L W 1 X Y 2 Z 2.2. הכרחיות הקטע הקריטי נראה כאן שלכל רכיב זיכרון סינכרוני חייב להיות קטע קריטי - קטע בו הקלט נדרש להיות יציב. לשם כך נתאר את המגבלה הבאה של מערכות ספרתיות. מגבלה של מערכות ספרתיות נתאר כאן משימה קלה לכאורה שמערכת ספרתית לא מסוגלת לבצע. מדובר ברכיב הנקרא שופט (ARBITER) ותפקידו להחליט מי משני מאורעות התרחש ראשון. a b a_first שופט במצב התחלתי,.a=b= 0 נתון שבמשך התחרות האותות a ו b נקיים (נטולי GLITCHים) ומבצעים לכל היותר מעבר אחד (כמובן מ '0 ל' '1') ומעבר זה הוא מהיר (פחות מ 1ns למשל). על השופט להכריז מי מבין a ו b עלה ראשון ל '1', וזאת ע"י a_first=1 אםם a הקדים את b. השופט לא חייב להיות מדויק או מהיר. בפרט: 1. לשופט מותר לטעות עד כדי שעה. דהינו, כאשר עליות a ו b סמוכות בזמן כל החלטה של השופט היא תקינה, אבל השופט לא יכול להחליט על תיקו. 2. השופט אינו צריך להחליט מיד על התוצאה. מותר לו להרהר במשך 3 שעות (לאחר העלייה הראשונה) ובמשך זמן זה מותר לו לשדר על a_first אות כלשהו. רק לאחר מכן a_first צריך להיות תקף. נראה שאי אפשר לבנות שופט כזה בטכניקה אלקטרונית (וכנראה גם בכל טכניקה אחרת). ברכיב כזה, אות הפלט האנלוגי S a_first מתקבל ע"י טרנספורמציה של אותות הקלט האנלוגיים S a ו.S b דהינו ) b.s a_first = T(S a, S כמו בכל רכיב אלקטרוני, הטרנספורמציה T היא רציפה שינוים קטנים באותות הקלט יגרמו לשינוי קטן באות הפלט.. נניח שצורת האותות S a ו S b היא כמו בתרשים הבא כאשר a עולה בזמן 0 ו b בזמן x. בתרשים זה ערכי הזמן מצוינים בשעות והמשתנה היחיד בתרחיש שלנו הוא x שעשוי להיות חיובי או שלילי. S a S b TIME 0 x 4 נגדיר (4) a_first.f(x)= S דהינו f(x) הוא הערך של האות S a_first בזמן 4 בתרחיש שבו b עלה בזמן x. כיוון שהטרנספורמציה T רציפה, הפונקציה הממשית f היא רציפה. בהנחה שהשופט תקין: (2)f = '1' ו (2-)f = '0'. על סמך משפט ערך הביניים קיים x עבורו f(x) לא-לוגי. אולם בזמן 4 האות a_first חייב להיות לוגי. (השופט כבר מזמן הכריז על המנצח). 2-4
לסיכום, קיבלנו שאי אפשר ליישם שופט ע"י מערכת ספרתית. אולם מערכות ספרתיות חייבות לעיתים להחליט מי משתי מאורעות סמוכים בזמן התרחש ראשון. למזלנו, למרות שאי אפשר לבנות שופט אמין, אפשר לבנות שופט שהסתברות הכישלון שלו קטנה כרצוננו. לצרכים פרקטיים מספיק שהסתברות זו תהיה קטנה מהסתברות הכישלון של השערים. הקטע הקריטי של רכיבי זיכרון סינכרוניים נראה עתה שלכל רכיב זיכרון סינכרוני חייב להיות קטע קריטי. ביתר פרוט, אנו נראה שאם לקלט מותר להשתנות בכל זמן (יחסית לשעון) אז ישנו אות קלט נקי הגורם לרכיב הזיכרון לזכור ערך לא-לוגי. נניח שזה לא המצב לגבי ETFF ואז ניישם שופט באופן הבא: b a D Q a_first (במצב התחלתי, 1 =Q). קל לבדוק שמבנה זה מהווה שופט. מכאן אנו מסיקים שFF עשוי לזכור ערך לא- לוגי. אנו לא נדון בשאלה כיצד בונים FF אבל נציין שבדרך כלל המצב בו הFF זוכר ערך לא-לוגי אינו עמיד (מבחינת שיווי משקל) ולכן נקרא.Meta-Stable ההסתברות שFF יתמיד במצב זה במשך קטע I שואפת ל 0 כאשר אורך הקטע שואף לאינסוף. דהינו, בהסתברות 1 ה, FF יעבור לאחד המצבים הלוגיים תוך פרק זמן סופי. 2.3. למה משטר דינמי? ה SR-FLIP-FLOP שלמדתם במערכות ספרתיות הוא רכיב זיכרון אסינכרוני (שאינו מופעל ע''י שעון) הבנוי כרשת ציקלית של שערים. ניתן לשער מכך שאפשר לבנות מערכות ספרתיות בעלות פונקציונליות מורכבת ומועילה ללא שימוש בשעונים ורכיבי זיכרון המופעלים על ידם. אנו לא ננקוט בגישה זו. יותר מכך, אנו נגביל את עצמנו ע"י המשטר הדינמי שיתואר בהמשך. זאת כיון שההפשטה הספרתית מאד מסוכנת ותקפה רק אם משתמשים בה באופן מיוחד ומקפידים על הגבלות מסוימות בבניית המערכת. נתאר להלן מספר כישלונות של רמת ההפשטה הספרתית. אופן פעולה דמיוני ושגוי כינוי גנאי לרמת ההפשטה הספרתית הוא operation the zero-one mode of הרומז לאופן עבודה דמיוני ושגוי של רכיבים ספרתיים. ביטוי זה בא להדגיש את הסתירה הבאה: ברמה הספרתית אנו מניחים שאותות המערכת הם תמיד לוגים ואילו האותות האמיתיים (האנלוגיים) מתנהגים בכלל אחרת. ראשית הם רציפים ולכן חייבים לחצות את האזור האסור. שנית, הם לאו דווקא חוצים את האזור האסור בזריזות אלא עשויים להתנדנד שם מספר פעמים וגם לצאת בסוף מהצד הלא נכון. glitch) הוא מקרה פשוט של התנהגות זו.) אין צורך שהמושגים של רמת הפשטה מסוימת יהיו מעוגנים במציאות. מספיק שהם יהיו עקביים ויובילו אותנו למסקנות נכונות באותה רמת הפשטה. לצערנו לא זה המצב. הפישוט של 1-0 עשוי לגרום לטעויות בניתוח מערכות ספרתיות (ההפשטה נכשלת). נתאר להלן טעויות נפוצות מסוג זה. למרות כל זאת אנו כן מעונינים להשתמש בפישוט ה 1-0 משיקולים של "חיסכון מחשבתי". פישוט זה תקף רק כאשר מקפידים על מתודולוגיה סינכרונית מסוימת (המשטר הדינמי) בתכנון המערכת, כפי שננקט בעתיד. 2-5
IN OUT סדר מאורעות שגוי טעות נפוצה הנגרמת ע"י ההפשטה הספרתית קשורה לתזמון של מאורעות. נדון בשער NOT לעיל. ירידה של האות IN גורמת לעליה ב.OUT לכן, ברמה הספרתית, ברור שהעלייה ב OUT באה אחרי הירידה ב IN שגרמה לה. מסקנה זו שגויה. להלן התנהגות אפשרית של האותות האנלוגיים IN ו.OUT IN d C d d האזור האסור OUT במקרה שלפנינו כלל לא ברור איזה מאורע קדם למשנהו. לכך עשויות להיות השלכות מעשיות לא צפויות. למשל במקרה שהנטים IN ו OUT נכנסים שניהם לאותו רכיב שהתנהגותו תלויה בסדר המעברים על שני הנטים. במקרה שלנו יש הבדל גדול בין זמני המעבר של IN ו.OUT זו היא תופעה רגילה. כאמור ב 1.4, אפילו באותו נט זמן הירידה אינו שווה לזמן העלייה ואילו כאן מדובר בנטים שונים. תופעה כזו רווחת כאשר העומס של IN גדול בהרבה מזה של.OUT כזכור, ההשהיה האקטואלית,, d d היא משך הזמן מהתייצבות הקלט להתייצבות הפלט. במקרה לעיל d d הוא שלילי. זה מוזר אבל בהחלט יתכן. המשטר הסטטי מבטיח שהשהיית זיהום אקטואלית, d, C היא תמיד אי-שלילית, אבל אין דבר המונע מ d d להיות שלילי. יתכן אפילו שכל ההשהיות האקטואליות הם שליליות. תופעה זו נדירה אך עשויה להתרחש כאשר העומס על IN גבוה מאוד. במקרה כזה השהית השער, T PD היא שלילית לפי ההגדרה שלנו. כדי להימנע ממקרה מוזר זה, יש המשנים את הגדרת ה, T PD (g) כדי שערך זה לא יהיה שלילי. דהינו יש המגדירים {השהיות נתונים אקטואליות max{0,. T PD (g) = פולס הנוצר יש מאין כאמור, אות אנלוגי עשוי לבצע GLITCH לעבור מערך לוגי ללא-לוגי ולחזור לאותו ערך לוגי. תופעה זו לא ניתנת לתאור ברמה הספרתית. שער המקבל GLITCH כקלט עשוי בהחלט להגביר אותו לפולס שני מעברים (לוגיים) שכנים. ברמה הספרתית אנו רואים פולס במוצא של שער למרות שקלטיו יציבים. מעגל צירופי מעגל צירופי הוא מעגל מכוון ברשת ספרתית המכיל שערים בלבד. רשת ציקלית של שערים היא לכן רשת המכילה מעגל צירופי. כפי שנראה להלן, התנהגות מערכות כאלו מאד מסובכת ולא ניתנת לניתוח ברמת ההפשטה הספרתית. נדון במעגל הצירופי הפשוט ביותר - מעגל המורכב ממהפכים בלבד. נבחין בשני מיקרים בהתאם לזוגיות של n, מספר המהפכים במעגל. x L מקרה 1. n אי זוגי. ננתח מערכת זו ברמה הספרתית. נבחר את אחת הקשתות שנסמנה x. בגלל הסימטרייה של המעגל לא חשוב איזה קשת נבחרה. נסמן ב L את המערכת לעיל בלי הקשת L x. היא לוגיקה צירופית כשרה ו (INV) T. PD (L) n T PD עקב הקשת x, הפלט של L שווה (תמיד) לקלט שלה. כיון ש L מחשבת את הפונקציה (x), L תמיד אינה עקבית. לכן האות x אינו יכול להיות יציב במשך קטע זמן הגדול מ.n T PD (INV) 2-6
סביר להניח ש x הוא אות מחזורי. במשך מחזור x עובר על שני הערכים הבינריים ולכן המחזור שלו הוא לכל היותר (INV).2n T PD ניזכר עתה ש x הוא בעצם אות אנלוגי, ולכן במשך מחזור הוא צריך לבצע עליה אחת וירידה אחת. (INV) T RISE (INV)+T FALL (INV) 2n T pd לכל n אי זוגי. בפרט מסקנה:.T RISE (INV)+T FALL (INV) 2T pd (INV) מסקנה זו מאד מפוקפקת. מבלי לדעת דבר על הטכנולוגיה "הצלחנו" להוכיח חסם עליון על זמני העליה והירידה של שער.NOT ואכן ברוב הטכנולוגיות אי השוויון הנ"ל לא נכון עבור n קטנים כמו 1=n או 3=n. איפה טעינו? כמובן הטעות היא בהנחה שהאות x הוא לוגי. עבור nים קטנים, ישנן שתי אפשריות לאות האנלוגי x(t) ובשתיהן האות תמיד אינו לוגי. אפשרות 1: x(t) קבוע על (INV) V th (נקודת השבת של המהפך). אפשרות 2: x(t) מתנדנד בתוך האזור האסור. x האזור האסור מקרה 2. n הוא זוגי. במקרה זה יש מבחר גדול יותר של התנהגויות אפשריות של המערכת, כדלקמן:.1 x(t) = '0' לוגי (וקבוע)..2 x(t) = '1' לוגי (וקבוע)..3 x(t) V th (INV) = (וקבוע). 4. x(t) מתנדנד באזור האסור. מבין התנהגויות אלו, רק (1) ו (2) עמידים מבחינת שיווי משקל. דהינו, רעש קטן יעביר את המערכת מהתנהגות (3) ו( 4 ל) (1) או (2). התנהגויות (3) ו (4) נקראות לכן. META-STABLE העובדה שהתנהגויות (1) ו (2) עמידות לרעש נובעת מהמשטר הסטטי. לעומת זאת, העובדה שהתנהגויות (3) ו (4) אינן עמידות לא נובעת מהמשטר הסטטי אלא מתכונות שוליות של השערים שלא נדון בהן. בקורס מערכות ספרתיות תואר האופן הבא לבנות.SR-FF שימו לב שכאשר,S=R= 0 מבנה זה שקול למעגל של שני מהפכים ולכן עשוי להיות במצב META- S R.STABLE מהדיון לעיל נובעות המסקנות הבאות לגבי רשת ציקלית של שערים: אי אפשר לנתח אותה ברמה הספרתית. כדי לנתח אותה ברמה האנלוגית דרוש לדעת אפיונים שוליים של השערים שבדרך כלל אינם ידועים למתכנן..1 קשה לתכנן אותה. 2. אם אנו מעונינים במערכת חסרת זיכרון, עדיף שתהיה אציקלית. 3. אם אנו מעונינים במערכת בעלת זיכרון, עדיף להשתמש ברכיבי זיכרון סינכרוניים שתוארו לעיל. 4. מהעובדה שלמעגל זוגי של מהפכים יש שני מצבים עמידים ניתן לשער (ובצדק) שאפשר לבנות ETFF או PTFF ע"י רשת ציקלית של שערים. אנו לא נעסוק בכך מהסיבות הבאות: 1. תכנון זה מאד מסובך ואי אפשר לעשותו תחת משטר הבורות. 2. הדגש בקורס הוא על תכנון מערכות גדולות ולא רכיבים קטנים. 3. FF כיום בונים לא משערים אלא מטרנזיסטורים, דהינו באותו אופן שבו בונים שערים. אפילו המשימה הפשוטה יחסית של תכנון ETFF או PTFF מ LATCHים היא עדינה ולא ניתנת לבצוע תחת משטר הבורות. 2-7
2.4. המשטר הדינמי מטרת המשטר הבא היא להקל על התכנון והניתוח של מערכות ספרתיות בעלות זיכרון ובמיוחד לאפשר שימוש ברמת ההפשטה הספרתית למרות כישלונותיה שתוארו בתת הפרק הקודם. המשטר הדינמי (The Discipline) Dynamic הוא אוסף הכללים והאיסורים הבאים: 1. המערכת מורכבת משערים ו FFים (מותנים או לא מותנים). 2. אנו מקבצים רכיבים אלו ללוגיקות-צירופיות (כשרות) ורגיסטרים. 3. הרגיסטרים מופעלים ע"י אותות שעון מחזוריים הבאים מחוץ למערכת. אותות אלו אינם מגיעים ללוגיקות הצירופיות. 4. אין במערכת מעגל צירופי (מעגל מכוון המכיל שערים בלבד). 5. המערכת מקימת משטר תזמון Discipline) Timing ה) מבטיח שבכל פעם שרגיסטר דוגם את הכניסות שלו, הכניסות הם תקפות. במילים אחרות, משטר זה מבטיח שרגיסטר לעולם לא יזכור זיהום. כל המערכות בעלות הזיכרון שנדון בהם יהיו תחת המשטר הדינמי. נזהיר את הקורא שההכרזה "אסור מעגל צירופי" אינה מספקת. למעגל כזה יש נטייה להתגנב לתכנונים לוגיים וצריך להיזהר ממנו בשבע עיניים. אנו עוד נחזור לנושא זה. משטר התזמון הבו-זמני (In-Unison) אנו נראה מספר משטרי תזמון. הפשוט מבניהם הוא משטר התזמון הבו-זמני כלהלן: 1. כל הרגיסטרים משנים את מצבם בו-זמנית. זה מובטח ע"י כך שכל הרגיסטרים הם לא מותנים ומופעלים ע"י אותו קצה של אותו שעון. 2. מחזור השעון גדול מספיק כך שכל הלוגיקות הצירופיות עקביות בקטע הקריטי. נביא להלן מספר דוגמאות למערכות סינכרוניות תחת המשטר הדינמי. 2-8
דוגמא 1. המערכת המתוארת בשרטוט הבא היא תחת משטר התזמון הבו-זמני ומהווה את הדוגמא הפשוטה ביותר למערכת סינכרונית. L היא לוגיקה צירופית. נניח 9=(L) T PD ו (FF)=1 T. PD להלן דיאגרמת ודאות ואי- ודאות של אותות המערכת תחת שעון שמחזורו = 10 PERIOD T. בדיאגרמה זו האות Y מתואר עבור שני מקרים: (L)=5 T CD ו (L) T CD לא ידוע. L W X Y Z TIME 0 2 4 6 8 10 C A PERIOD C A T PD (FF) T PD (FF) W דיאגרמת ודאות ואי-ודאות X (T CD =?) Y (T CD =5) Y Z T CD (L) אות השעון מתואר בצורה מוזרה שאפשר להבינה בשתי דרכים: 1. האות עולה ויורד באופן מידי (רוחב הפולס הוא 0). 2. הירידות של השעון לא מעניינות אותנו ולכן אנו לא מציינים אותם. במשטר תזמון זה תפקידו היחיד של השעון הוא למקם את קטעי הזמן C ו A של ה FFים. אותות הקלטים (W) משתנים באופן מידי וחסרי זיהום (אי-ודאות). זה כמובן רק לשם הפשטות. האותות. A משתנים רק בקטע FF זה נובע מכך שה A. הם אי-ודאיים רק בקטע X אנו מניחים שהקטע A השמאלי הסתיים בזמן 0=t. באותו זמן מסתיים הזיהום של הX םי. נחליט שמחזור השעון מתחיל בנקודה זו. לאחר 9=(L) T PD יחידות זמן מובטח שהלוגיקה L עקבית ולכן מסתיים הזיהום של הY םי. (כל זאת בלי קשר ל (L).) T CD לכן מבואות הרגיסטר הימני יציבות בקטע הקריטי. זה מבטיח את ההתנהגות התקינה של המערכת. שימו לב שנקודות הזמן החשובות בדיון זה הן לא העליות של השעון אלא הקצוות של הקטעים C ו Α. במקרה ש (L) T CD לא ידוע, הזיהום של ה Yים מתחיל בו זמנית עם זיהום ה X םי (כי הלוגיקה L עשויה להעביר זיהום באופן מידי) ואילו במקרה של "5=(L) T" CD הזיהום מתחיל 5 יחידות זמן מאוחר יותר. ההבדל מבחינתנו הוא שולי. למשל בזמן 4=t, במקרה הראשון ערכי Y כלל לא ידועים ואילו במקרה השני ערכי Y ידועים אבל לא רצויים (שיכים למחזור הקודם). 2-9 T PD (L)
שימו לב שהשאלה האם ל L יש או אין ספחות אינה רלוונטית. מה שחשוב הוא שהמוצאות של L יהיו תקפים בקטע הקריטי C וכלל לא איכפת לנו אם לפני כן הם התנודדו שבע פעמים. הגברת הודאות בממד הזמן הדיאגרמה לעיל ממחישה את התפקיד העיקרי של רגיסטרים (סינכרוניים) במערכת ספרתית. תפקיד זה דומה ומשלים את תפקידו של המשטר הסטטי. מטרת המשטר הסטטי היא להגביר את הודאות הלוגית של האותות ע"י הרחקת הערך האנלוגי מהאזור האסור (הלא-לוגי). רגיסטרים, לעומת זאת, מגבירים את ודאות האותות בממד הזמן. ללוגיקה צירופית יש את התכונה השלילית של הגברת הרוחב של אזורי הזיהום. בשרטוט לעיל, הזיהום של הפלט Y של הלוגיקה L רחב בהרבה מהזיהום של הקלט שלה. שימו לב שאם הזיהום של אות מסוים הוא עד כדי כך גדול שרוחב אזור הודאות קטן מרוחב הקטע הקריטי אזי האות הוא חסר תועלת. רגיסטרים מתקנים את נזקן של הלוגיקות הצירופיות ע"י זה שזיהום מוצאם קטן ואינו תלוי ברוחב זיהום הכניסה, בתנאי שהכניסה יציבה בקטע הקריטי. דוגמא 2: תזמון מערכת במשטר הבו-זמני נדון כאן במקרה הכללי של מערכת סינכרונית המקיימת את משטר התזמון הבו-זמני. תהי Y מערכת כזו, I הקלט שלה (דהינו, אוסף הקשתות הנכנסות למערכת מהעולם החיצוני) ו O הפלט. אנו מניחים שתזמון הקלט/פלט נתון לבחירתו. דהינו, אנו נקבע למשתמש באיזה קטע הקלטים (שהוא מספק) צריכים להיות תקפים ובאיזה קטע הפלטים (שהוא מקבל) יהיו תקפים. מטרתנו לברר מה צריך להיות מחזור השעון.T PERIOD ניתן לשרטט בהרבה אופנים את אותה מערכת ספרתית ואנו נבחר באופן הבא. נקבץ את כל ה- FFים לרגיסטר אחד שיקרא R ולשארית המערכת נקרא L. שארית זו מורכבת רק משערים ולפי המשטר הדינמי היא אציקלית. דהינו, L היא לוגיקה צירופית. נצייר את המערכת באופן הבא. I + O + I L O R במבנה זה, הלוגיקה L לאו-דווקא קשירה. בנוסף לכך, L עשויה להכיל קשתות מכניסה ליציאה שאין עליהם כל שער. שרטוט זה הוא ההצגה הסטנדרטית של (FSM) Finite State Machine מסוג Mealy ואכן Y מתנהגת כ FSM כזה. (כמקרה פרטי, היא עשויה להתנהג כ FSM מסוג (.Moore 2-10
ה. כפי שציינו, התזמון של I ו O נתון לבחירתנו. כדי לפשט את הניתוח, נחליט ש I יציב באותו קטע כמו המוצא של R ו O יציב באותו קטע כמו המבוא של R. (החלטה זו שקולה לדרישה ש I בא ישירות מרגיסטר ו O נכנס ישירות לרגיסטר.) נסמן ב + I את כל הקלטים של L וב + O את כל הפלטים שלה. תחת ההנחה שהמערכת מתפקדת, + I הוא זיהום בדיוק בקטע A. להלן הדיאגרמה של אותות המערכת. T PD (FF) T PD (FF) C A T PERIOD C A I + O + T PD (L) כפי שראינו בדוגמא 1, אות השעון עצמו אינו רלוונטי לניתוח תזמון המערכת ולכן לא מופיע בדיאגרמה. מה שכן רלוונטי הם קטעי הזמן C ו A הנקבעים ע"י השעון. כדי שהמערכת תתפקד, הכרחי ומספיק שהאותות + O יהיו תקפים בקטע C, או במילים אחרות, שקטע הזיהום של + O יהיה זר ל- C. מהדיאגרמה ברור שזה שקול לתנאי:.T PD (L) + T PD (FF) T PERIOD דהינו, המערכת מתפקדת אם ורק אם מחזור השעון הוא לפחות (FF) T. PD (L) + T PD כדי לפשט את הניתוח של מערכות מורכבות, אנו נניח מעתה שההשהיה של הFFים היא זניחה יחסית להשהיה של הלוגיקות הצירופיות ונתייחס אליה כ 0 בחישוב זמן המחזור. דוגמא 3 גם המערכת הבאה היא תחת משטר התזמון הבו-זמני. המערכת מקבלת סדרת מספרים שלמים i X, אחד אחרי השני, בתדירות של מספר כל 2 יחידות זמן. המערכת מסכמת את סדרת המספרים. (אנו נתעלם מהצורך לאתחל את המערכת ומ (.OVERFLOW המערכת משתמשת במחבר שלו היא (כמעט) 2. (ADDER) שההשהיה X SUM ADDER ברור שמערכת זו מתפקדת עם מחזור שעון 2 Xים צריכים להיות תקפים בקטע הקריטי של הרגיסטר. 2-11
דוגמא 4 דוגמא זו לא תהיה תחת משטר התזמון הבו-זמני אלא תחת משטר התזמון של שעון יחיד. במשטר זה, כל הרגיסטרים מופעלים ע"י אותו קצה של אותו שעון. משטר זה שונה מהמשטר הבו-זמני בכך שלא כל הרגיסטרים נטענים בו-זמנית כיוון שחלק מהם מותנים. משימה: כמו בדוגמא הקודמת, אבל תדירות הקלט כפולה, מספר כל יחידת זמן. מותר לנו להשתמש במספר כלשהו של מחברים מאותו סוג של הדוגמא הקודמת (השהיה 2 יחידות זמן). X שיטה: אנו נפרק את סדרת הקלט i X לשתי תת סדרות X ו X שהתדירות שלהן היא מחצית מתדירות X. את כל אחת מתתי הסדרות נסכם כמו בדוגמא הקודמת. לצורך כך מחזור השעון הוא 1 ואנו משתמשים באות בשם EVEN שערכו מתחלף כל מחזור שעון. (את יצירת האות EVEN נשאיר לקורא). בנוסף לכך נחבר את שני הסכומים. כל הרגיסטרים מופעלים ע"י אותו שעון שמחזורו 1 ואינו מופיע בתרשים הלוגי להלן. EVEN S X X S Y K G SUM כל הרגיסטרים מופעלים ע"י השעון שאינו משורטט EVEN TIME 0 1 2 3 4 שימו לב שרגיסטר מותנה המופעל כל מחזור שני שקול לרגיסטר לא-מותנה המופעל ע"י שעון מדומה שתדירותו מחצית מזו של השעון האמיתי. תחת פרוש זה, המערכת מתחלקת לשתי תת-מערכות כפי שמתואר בתרשים. כל אחת מהם מקימת את משטר התזמון הבו-זמני עבור שעון מדומה משלה. לשני השעונים המדומים אותו מחזור, וכל אחד מהם הוא הסטה של האחר בחצי מחזור. דוגמא זו מתארת לכן שילוב (פשוט יחסית) של שתי תת-מערכות המופעלות ע"י שעונים שונים. מדוגמא קודמת ברור כי האותות S מכילים את סכום תת- הסדרה X, ו S את סכום תת-הסדרה X. נראה שכדי לקבל את סכום סדרת ה Xים צריך להכניס את S ו S למחבר, אבל זה לא אפשרי. הקלט למחבר צריך להיות יציב במשך שתי יחידות זמן. אמנם כל אחד מ S ו S יציב במשך זמן כזה, אבל הם לא מסונכרנים (משתנים בזמנים שונים). אנו משתמשים ברגיסטר K כדי לסנכרן בין שני האותות 2-12
2.5. אותות ספרתיים בזמן בדיד נותר לנו בדוגמא הקודמת לוודא כי המערכת אכן מסכמת את סדרת ה X םי. המניע העיקרי להבאת דוגמא זו היא הצגת השיטה הבאה לניתוח התנהגות המערכת. אנו מעונינים לעשות ניתוח זה ברמה הגבוהה ביותר, דהינו ברמה הספרתית. אולם, כפי שהוסבר בתת-פרק 2.3, אי אפשר כלל לנתח אותות ספרתיים בהנחה שהזמן הוא רציף. לכן נניח מעתה שהזמן הוא בדיד. דהינו, אנו נתבונן במצב המערכת רק בנקודות זמן מיוחדות המהוות קבוצה בדידה (וביתר הזמן נעצום עיניים). שים לב שהמספרים הממשיים מהווים את ציר הזמן הרציף, והמספרים השלמים הם תת-קבוצה של הממשיים. נניח מעתה שהמספרים השלמים נמצאים בקטעים הקריטיים של הרגיסטרים. (כיון שהמחזור הוא 1, אם מספר שלם אחד נמצא בקטע קריטי אזי כל השלמים נמצאים בקטעים קריטיים.) נבחר בנקודות זמן אלו, של המספרים השלמים, להיות נקודות ההתבוננות שלנו. אנו בוחרים דווקא בנקודות אלו כי בהם רוב אותות המערכת תקפים. הדוגמה שלפנינו מסובכת יחסית כי אינה מקימת את משטר התזמון הבו-זמני. אילו היה מתקיים משטר תזמון זה אזי בנקודות ההתבוננות שלנו כל הלוגיקות היו עקביות וכל האותות היו תקפים. כיון שאנו מתבוננים באותות המערכת רק בנקודות זמן שלמות הרי מבחינתנו כל אות הוא פונקציה מהקבוצה הבדידה של נקודות זמן שלמות לקבוצה הבדידה {1,0}. לאותות כאלו נקרא אותות ספרתיים בדידים בזמן. שימו לב שעבור i שלם, הקלט לרגיסטר חייב להיות תקף בזמן i (אלא אם LOAD=0 באותו זמן), אבל הפלט משתנה קצת אחרי i ונראה אותו בזמן 1+i. עבור קו-מרובה Z וזמן, i אנו נתייחס ל Z(i) לא כוקטור בינרי אלא כמספר שלם. כל מה שתואר לעיל מהווה רמת הפשטה חדשה וברמה זו המערכת מקימת את השוויונות הבאים הנקראים שוויונות של זמן בדיד: (1) X (2i+1) = X (2i) = X(2i-1) (2) X (2i+2) = X (2i+1) = X(2i) (3) Y (2i+1) = X (2i+1) + S (2i+1) הוא זיהום) Y (2i)) (4) S (2i) = S (2i+1) = j<i X (2j) = j<i X(2j-1) (5) S (2i+1) = S (2i+2) = j<i X (2j+1) = j<i X(2j) (6) G (2i+1) = G (2i+2) = S (2i) (7) SUM(2i) = S (2i) + G (2i) הוא זיהום) SUM(2i+1)) = S (2i) + S (2i-2) = j<i-1 X(2j) + j<i-1 X(2j-1) = j<2i-3 X(j) דהינו, בנקודות זמן זוגיות SUM מכיל את סכום כל המספרים שנכנסו עד עתה, פרט ל 4 אחרונים. רוב השוויונות לעיל נובעים משקולים אלגברים טהורים משוויונות שקדמו להם. נדון כאן רק בשיקולים של מערכות ספרתיות שעליהם מבוססים מקצת השוויונות. לגבי שוויון (1), הרגיסטר ממנו יוצא X דוגם את הקלט בכל נקודת זמן אי-זוגית, 1-2i, אולם השינוי בערך הרגיסטר יופיע רק בנקודת הזמן הבאה. הערך שנדגם הוא כמובן X(2i-1) ולכן X(2i-1).X (2i) = במחזור הבא הרגיסטר אינו משתנה ולכן X (2i).X (2i+1) = לגבי שוויון (3), הקלטים של המחבר המתאים משתנים קצת אחרי 1-2i ואז הם יציבים עד וכולל 1+2i. ההשהיה של המחבר היא ε-2 ולכן בזמן 1+2i המחבר עקבי. מעקביות זו נובע:.Y (2i+1) = X (2i+1) + S (2i+1) כיון שהמחבר אינו דווקא עקבי בזמן Y (2i) 2i, הוא זיהום. 2-13